Alertmanager 配置速查
正篇里出现过的配置项汇总成表,改配置时随手翻。完整字段定义以官方配置参考为准(见附录《参考资料》)。
route 路由字段
| 字段 | 类型 | 作用 | 备注 |
|---|---|---|---|
matchers | 字符串列表 | 匹配条件,如 ["severity=\"critical\"", "team=~\"order|pay\""] | 0.27 起取代废弃的 match / match_re |
receiver | 字符串 | 匹配后交给哪个接收器 | 缺省落到根路由的默认 receiver |
continue | 布尔 | 匹配后是否继续匹配后续兄弟路由 | 默认 false,匹配即停 |
group_by | 标签名列表 | 按哪些标签把告警聚成一组发一条通知 | 同组共用同一条通知 |
group_wait | 时长 | 新告警组首次发送前等待多久 | 默认 30s,攒一波再发 |
group_interval | 时长 | 已有组内新增告警后,多久再发一次 | 默认 5m |
repeat_interval | 时长 | 内容无变化的告警多久重发一次 | 默认 4h,防轰炸的关键 |
mute_time_intervals | 字符串列表 | 引用 time_intervals,命中的时段不发通知 | 维护窗口免打扰 |
active_time_intervals | 字符串列表 | 引用 time_intervals,只在命中时段发通知 | 与 mute 相反,0.24+ 支持 |
routes | 子路由列表 | 嵌套的子路由,自上而下匹配 | 子路由继承父路由未覆盖的参数 |
receiver 类型
| 类型 | 用途 | 关键字段 |
|---|---|---|
email_configs | 邮件通知 | to、from、smarthost、require_tls |
webhook_configs | 通用 webhook,对接钉钉/企微等转换层 | url、send_resolved、http_config |
slack_configs | Slack 消息 | api_url、channel、title、text |
opsgenie_configs | Opsgenie 值班与升级 | api_key、responders、priority |
pagerduty_configs | PagerDuty 值班 | routing_key 或 service_key、severity |
wechat_configs | 企业微信应用消息 | api_secret、corp_id、to_user / to_party |
victorops_configs、sns_configs、telegram_configs、discord_configs、msteams_configs 等 | 其余内置集成 | 各自鉴权和目标字段 |
所有类型的集成配置里都有 send_resolved,控制是否发送恢复通知,默认值因类型而异,建议显式写出。
inhibit_rules 抑制规则三要素
| 字段 | 作用 |
|---|---|
source_matchers | 源告警匹配条件——它触发时,压制目标告警 |
target_matchers | 目标告警匹配条件——被压制的告警 |
equal | 源和目标在这些标签上取值相同才生效(如同一 instance) |
典型用途:critical 压制同实例的 warning;集群级告警压制该集群下所有单机告警。
silence 静默的 amtool 命令
amtool 通过 --alertmanager.url 指定目标实例:
| 操作 | 命令 |
|---|---|
| 创建静默 | amtool silence add alertname="NodeDown" instance="10.0.0.21:9100" --duration=2h --comment="维护升级" --author=liangyou |
| 按正则匹配 | amtool silence add alertname=~"Node.*" --duration=1h |
| 查看当前静默 | amtool silence query |
| 过期指定静默 | amtool silence expire <silence-id> |
| 全部过期 | amtool silence expire $(amtool silence query -o json | jq -r '.[].id') |
| 查询告警 | amtool alert query severity="critical" |
| 查看配置 | amtool config show |
amtool 配置文件
把 --alertmanager.url 固化到 ~/.config/amtool/config.yml 里,就不用每次敲地址。
time_intervals 时间段字段
| 字段 | 写法示例 | 含义 |
|---|---|---|
times | start_time: 02:00 / end_time: 06:00 | 每天的起止时刻 |
weekdays | ['monday:friday'] | 星期范围,可枚举可区间 |
days_of_month | ['1', '15:20'] | 每月几号,可枚举可区间 |
months | ['1:3'] | 月份范围 |
years | ['2026'] | 年份 |
location | 'Asia/Shanghai' | 时区,缺省 UTC |
一个 time_interval 内多个字段是「与」关系,数组内多项是「或」关系。被 route 的 mute_time_intervals 或 active_time_intervals 按名字引用。